﻿using Microsoft.EntityFrameworkCore;
using Microsoft.EntityFrameworkCore.Metadata.Builders;
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using vite_entity.Entities;

namespace vite_entity.EntityTypeConfig
{
    public class SysDept_TypeConfig : IEntityTypeConfiguration<SysDept>
    {
        public void Configure(EntityTypeBuilder<SysDept> entity)
        {
            entity.HasKey(e => e.Id).HasName("PRIMARY");

            entity.ToTable("sys_dept", tb => tb.HasComment("部门表"))
                    .UseCollation("utf8mb4_general_ci");

            entity.HasIndex(e => e.Code, "uk_code").IsUnique();

            entity.Property(e => e.Id)
                    .HasComment("主键")
                    .HasColumnName("id");
            entity.Property(e => e.Code)
                    .HasMaxLength(100)
                    .HasComment("部门编号")
                    .HasColumnName("code");
            entity.Property(e => e.CreateBy)
                    .HasComment("创建人ID")
                    .HasColumnName("create_by");
            entity.Property(e => e.CreateTime)
                    .HasComment("创建时间")
                    .HasColumnType("datetime")
                    .HasColumnName("create_time");
            entity.Property(e => e.IsDeleted)
                    .HasComment("逻辑删除标识(1-已删除 0-未删除)")
                    .HasColumnName("is_deleted");
            entity.Property(e => e.Name)
                    .HasMaxLength(100)
                    .HasDefaultValueSql("''")
                    .HasComment("部门名称")
                    .HasColumnName("name");
            entity.Property(e => e.ParentId)
                    .HasComment("父节点id")
                    .HasColumnName("parent_id");
            entity.Property(e => e.Sort)
                    .HasDefaultValueSql("'0'")
                    .HasComment("显示顺序")
                    .HasColumnName("sort");
            entity.Property(e => e.Status)
                    .HasDefaultValueSql("'1'")
                    .HasComment("状态(1-正常 0-禁用)")
                    .HasColumnName("status");
            entity.Property(e => e.TreePath)
                    .HasMaxLength(255)
                    .HasDefaultValueSql("''")
                    .HasComment("父节点id路径")
                    .HasColumnName("tree_path");
            entity.Property(e => e.UpdateBy)
                    .HasComment("修改人ID")
                    .HasColumnName("update_by");
            entity.Property(e => e.UpdateTime)
                    .HasComment("更新时间")
                    .HasColumnType("datetime")
                    .HasColumnName("update_time");
        }
    }
}
